﻿namespace Sidvall.LogManager.Net.Services.V1.Model
{
    public sealed partial class DataPortal : global::Sidvall.LogManager.Model.DataPortalBase
    {
        #region Public Members

        #region LogScopeManager

        private global::Sidvall.LogManager.Model.DataPortalManagers.LogScopeManager<global::Sidvall.LogManager.Net.Services.V1.LogScope, global::Sidvall.LogManager.Net.Services.V1.LogScopeCollectionItem> _LogScopeManager;
        public global::Sidvall.LogManager.Model.DataPortalManagers.LogScopeManager<global::Sidvall.LogManager.Net.Services.V1.LogScope, global::Sidvall.LogManager.Net.Services.V1.LogScopeCollectionItem> LogScopeManager
        {
            get
            {
                return _LogScopeManager;
            }
            private set
            {
                _LogScopeManager = value;
            }
        }

        #endregion
        #region LogScopeItemManager

        private global::Sidvall.LogManager.Model.DataPortalManagers.LogScopeItemManager<global::Sidvall.LogManager.Net.Services.V1.LogScopeItem, global::Sidvall.LogManager.Net.Services.V1.LogScopeItemCollectionItem> _LogScopeItemManager;
        public global::Sidvall.LogManager.Model.DataPortalManagers.LogScopeItemManager<global::Sidvall.LogManager.Net.Services.V1.LogScopeItem, global::Sidvall.LogManager.Net.Services.V1.LogScopeItemCollectionItem> LogScopeItemManager
        {
            get
            {
                return _LogScopeItemManager;
            }
            private set
            {
                _LogScopeItemManager = value;
            }
        }

        #endregion
        #region LogScopeItemCategoryManager

        private global::Sidvall.LogManager.Model.DataPortalManagers.LogScopeItemCategoryManager<global::Sidvall.LogManager.Net.Services.V1.LogScopeItemCategory, global::Sidvall.LogManager.Net.Services.V1.LogScopeItemCategoryCollectionItem> _LogScopeItemCategoryManager;
        public global::Sidvall.LogManager.Model.DataPortalManagers.LogScopeItemCategoryManager<global::Sidvall.LogManager.Net.Services.V1.LogScopeItemCategory, global::Sidvall.LogManager.Net.Services.V1.LogScopeItemCategoryCollectionItem> LogScopeItemCategoryManager
        {
            get
            {
                return _LogScopeItemCategoryManager;
            }
            private set
            {
                _LogScopeItemCategoryManager = value;
            }
        }

        #endregion
        
        #endregion
        #region Constructors

        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1506:AvoidExcessiveClassCoupling")]
        public DataPortal(global::Sidvall.LogManager.Model.IDataPortalFactory localDataPortalFactory, global::Sidvall.LogManager.Model.IDataPortalFactory remoteDataPortalFactory, bool alwaysUseLocalDataPortal) 
            : base(global::Sidvall.LogManager.Net.Services.V1.Model.ResourceFactory.Current, localDataPortalFactory, remoteDataPortalFactory)
        {
            this.LogScopeManager = new global::Sidvall.LogManager.Model.DataPortalManagers.LogScopeManager<global::Sidvall.LogManager.Net.Services.V1.LogScope, global::Sidvall.LogManager.Net.Services.V1.LogScopeCollectionItem>(this, alwaysUseLocalDataPortal);
            this.LogScopeItemManager = new global::Sidvall.LogManager.Model.DataPortalManagers.LogScopeItemManager<global::Sidvall.LogManager.Net.Services.V1.LogScopeItem, global::Sidvall.LogManager.Net.Services.V1.LogScopeItemCollectionItem>(this, alwaysUseLocalDataPortal);
            this.LogScopeItemCategoryManager = new global::Sidvall.LogManager.Model.DataPortalManagers.LogScopeItemCategoryManager<global::Sidvall.LogManager.Net.Services.V1.LogScopeItemCategory, global::Sidvall.LogManager.Net.Services.V1.LogScopeItemCategoryCollectionItem>(this, alwaysUseLocalDataPortal);
        }

        #endregion
    }
}